/**
  ******************************************************************************
  * @file           : parameter.h
  * @brief          : Header for parameter.c file.
  *                   This file contains the common defines of the application.
  ******************************************************************************
  * @attention
  *
  ******************************************************************************
  */

#ifndef  __PARAMETER_H_
#define  __PARAMETER_H_

#include <stdint.h>
#include "storage.h"

#define STO_DO_NOT_SAVE_NOERR                 0xDEu

#define INPUTBUF_MAXLEN                       16

#define STO_MTIDX_LAST                        STO_MTIDX_end              // 最后的参数号
#define STO_MTIDX_NUM_MAX                     (STO_MTIDX_LAST + 1)   // 参数数量
#define FIRST_POWERON_FLAG                    (0x5AA55AA5)               // 首次上电特征字

#define STO_MTIDX_FRAMBASE_ADDR               0x0000u
#define sto_mtidx(x)                          (STO_MTIDX_##x)
#define sto_index_to_addr(x)                  (STO_MTIDX_FRAMBASE_ADDR + (sizeof(Sto_DataStru) * x)) /* 多套参数时,此处需要修改 */
#define sto_addr(x)                           (sto_index_to_addr(sto_mtidx(x)))
#define sto_upcb_fpointer(x)                  sto_upcb_##x
#define sto_upcb_function(x)                  void sto_upcb_fpointer(x)(uint16_t idx, Sto_CellUnion dat, void *dest)
#define sto_inputcb_fpointer(x)               sto_inputcb_##x
#define sto_inputcb_function(x)               void sto_inputcb_fpointer(x)(const Sto_MaintainStru *pmt, uint8_t cmd, uint8_t key)
#define sto_dynstr_fpointer(x)                sto_dynstr_##x
#define sto_dynstr_function(x)                uint8_t sto_dynstr_fpointer(x)(const Sto_MaintainStru *pmt, uint8_t type, char *buf, uint16_t maxlen)
#define sto_fixstr_pointer(x)                 sto_fixstr_##x##_stru
#define sto_fixstr_namestr(x)                 gui_asc_name_##x
#define sto_fixstr_unitstr(x)                 gui_asc_unit_##x
#define sto_fixstr_briefstr(x)                gui_asc_brief_##x

typedef enum _Sto_MaintainIndexEnum
{
  STO_MTIDX_local_number    = 0,     /* 本机编号 */
  STO_MTIDX_measuring_range_tph = 1, /* 量程 t/h */
  STO_MTIDX_main_display_pos1,       /* 首页位置1显示 0班累计 1日累计 2月累计 3年累计 */
  STO_MTIDX_main_display_pos2,       /* 首页位置2显示 0流量 1载荷 2速度 */
  STO_MTIDX_refresh_rate,            /* 显示刷新率 1~20 */
  STO_MTIDX_num_of_class,            /* 当日班数 */
  STO_MTIDX_division_kg,             /* 累计分度值 kg STO_MTIDX_divisionenum */
  STO_MTIDX_auto_zero_range,         /* 自动调零强度 */
  STO_MTIDX_manu_zero_range,         /* 手动调零强度 */
  STO_MTIDX_speed_low_limit,         /* 实测速度内码下限 */
  STO_MTIDX_flowrate_lowlim_kgh,     /* 有效流量下限 t/h */
  STO_MTIDX_weight_pulse_wide,       /* 定量脉冲开关及宽度 ms */
  STO_MTIDX_weight_pulse_set_kg,     /* 定量重量设定 kg */
  STO_MTIDX_len_circle_mode,         /* 整圈方式 */
  STO_MTIDX_belt_period_0d01s,       /* 皮带周期 0.1s */
  STO_MTIDX_belt_length_mm,          /* 皮带周长 mm */
  STO_MTIDX_effect_length_mm,        /* 称量长度 mm */
  STO_MTIDX_speed_wheel_cir_0d1mm,   /* 测速轮周长 0.1mm */
  STO_MTIDX_speed_wheel_pls,         /* 测速轮每周脉冲 */
  STO_MTIDX_ao1_zero_code,           /* ao1零点内码(pwm值) */
  STO_MTIDX_ao1_full_code,           /* ao1满度内码(pwm值) */
  STO_MTIDX_ao2_zero_code,           /* ao2零点内码(pwm值) */
  STO_MTIDX_ao2_full_code,           /* ao2满度内码(pwm值) */
  STO_MTIDX_zero_code_uplimit,       /* 零点内码上限 */
  STO_MTIDX_zero_code_ave,           /* 零点总平均内码 */
  STO_MTIDX_factor_correct_enable,   /* 系数修正使能 */
  STO_MTIDX_weight_factor_base,      /* 称量系数基础值 */
  STO_MTIDX_weight_factor01,         /* 称量系数修正01 (  >1600   t/h) */
  STO_MTIDX_weight_factor02,         /* 称量系数修正02 (1200~1600 t/h) */
  STO_MTIDX_weight_factor03,         /* 称量系数修正03 (800~1200  t/h) */
  STO_MTIDX_weight_factor04,         /* 称量系数修正04 (400~800   t/h) */
  STO_MTIDX_weight_factor05,         /* 称量系数修正05 (  <400    t/h) */
  STO_MTIDX_cal_fama_weight_0d1g,    /* 校验砝码重量 g */
  STO_MTIDX_cal_shiwu_weight_kg,     /* 校验实物重量 kg */
  STO_MTIDX_cal_shiwu_wtacc,         /* 校验实物重量是否计入产量 */
  STO_MTIDX_cal_lianma_denser_0d1gpm,/* 校验链码密度 g/m */
  STO_MTIDX_wad_preset_value,        /* 重量内码内给值 */
  STO_MTIDX_wad_preset_enable,       /* 重量内码内给开关 */
  STO_MTIDX_sad_preset_value,        /* 速度内码内给值 */
  STO_MTIDX_sad_preset_enable,       /* 速度内码内给开关 */

  STO_MTIDX_spd_sensor_addr,         /* 传感器 速度  地址 */
  STO_MTIDX_wt1_sensor_addr,         /* 传感器 称重1 地址 */
  STO_MTIDX_wt2_sensor_addr,         /* 传感器 称重2 地址 */
  STO_MTIDX_wt3_sensor_addr,         /* 传感器 称重3 地址 */
  STO_MTIDX_wt4_sensor_addr,         /* 传感器 称重4 地址 */

  STO_MTIDX_year_begin_zero,         /* 年累计起始点 */
  STO_MTIDX_month_begin_zero,        /* 月累计起始点 */
  STO_MTIDX_day_begin_zero,          /* 日累计起始点 */

  STO_MTIDX_acc_class01_start_time,  /* 班01累计起始时 */
  STO_MTIDX_acc_class02_start_time,  /* 班02累计起始时 */
  STO_MTIDX_acc_class03_start_time,  /* 班03累计起始时 */
  STO_MTIDX_acc_class04_start_time,  /* 班04累计起始时 */

/* 以下参数只参与存储、modbus只读,外部不可设置 */
  STO_MTIDX_total_last_switch,       /* 上次总累计清零切换日期 */
  STO_MTIDX_year_last_switch,        /* 上次年累计清零切换日期 */
  STO_MTIDX_month_last_switch,       /* 上次月累计清零切换日期 */
  STO_MTIDX_day_last_switch,         /* 上次日累计清零切换日期 */
  STO_MTIDX_hour_last_switch,        /* 上次时累计清零切换日期 */
  STO_MTIDX_class_last_switch,       /* 上次班累计清零切换日期 */

  STO_MTIDX_total_acc_0d1g,          /* 总累计 */
  STO_MTIDX_year_acc_0d1g,           /* 年累计 */
  STO_MTIDX_month_acc_0d1g,          /* 月累计 */
  STO_MTIDX_day_acc_0d1g,            /* 日累计 */
  STO_MTIDX_hour_acc_0d1g,           /* 时累计 */
  STO_MTIDX_pulse_acc_0d1g,          /* 脉冲累计 */
  STO_MTIDX_class01_acc_0d1g,        /* 班01累计 */
  STO_MTIDX_class02_acc_0d1g,        /* 班02累计 */
  STO_MTIDX_class03_acc_0d1g,        /* 班03累计 */
  STO_MTIDX_class04_acc_0d1g,        /* 班04累计 */

  STO_MTIDX_total_acc_last_0d1g,     /* 总累计_上次 */
  STO_MTIDX_year_acc_last_0d1g,      /* 年累计_上次 */
  STO_MTIDX_month_acc_last_0d1g,     /* 月累计_上次 */
  STO_MTIDX_day_acc_last_0d1g,       /* 日累计_上次 */
  STO_MTIDX_hour_acc_last_0d1g,      /* 时累计_上次 */
  STO_MTIDX_class01_acc_last_0d1g,   /* 班01累计_上次 */
  STO_MTIDX_class02_acc_last_0d1g,   /* 班02累计_上次 */
  STO_MTIDX_class03_acc_last_0d1g,   /* 班03累计_上次 */
  STO_MTIDX_class04_acc_last_0d1g,   /* 班04累计_上次 */

  STO_MTIDX_prod_city_num,           /* 市名/编号 */
  STO_MTIDX_prod_county_num,         /* 县名/编号 */
  STO_MTIDX_prod_mines_num,          /* 矿名/编号 */
  STO_MTIDX_prod_year_capacity_t,    /* 核定年生产能力 */
  STO_MTIDX_prod_month_capacity_t,   /* 核定月生产能力 */
  STO_MTIDX_prod_day_capacity_t,     /* 核定日生产能力 */
  STO_MTIDX_prod_hour_capacity_t,    /* 核定时生产能力 */
  STO_MTIDX_prod_interval_time_s,    /* 间隔参量时间 也是上传时间 s */
  STO_MTIDX_prod_net_timeout_s,      /* 产量网络发送超时时间 s */

  /* 网络参数设置 */
  STO_MTIDX_eth_local_ip,            /* 本机IP  u8x4 */
  STO_MTIDX_eth_local_gw,            /* 网关    u8x4 */
  STO_MTIDX_eth_local_msk,           /* 子网掩码 u8x4 */
  STO_MTIDX_eth_local_mac,           /* 本机MAC u8x6 */

  STO_MTIDX_eth_produp_ip,           /* 间隔参量上传 目标服务器ip u8x4 */
  STO_MTIDX_eth_prodrt_ip,           /* 实时参量上传 目标服务器ip u8x4 */
  STO_MTIDX_eth_mbtcp_ip,            /* modbusTCP  目标服务器ip u8x4 */
  STO_MTIDX_eth_produp_port,         /* 间隔参量上传 目标服务器端口 */
  STO_MTIDX_eth_prodrt_port,         /* 实时参量上传 目标服务器端口 */
  STO_MTIDX_eth_mbtcp_prot,          /* modbusTCP  目标服务器端口 */

  STO_MTIDX_end
}Sto_MaintainIndexEnum;

typedef enum _Sto_MaintainDynStrTypeEnum
{
  STO_MTDYNSTR_OUTPUT_VALUE = 0,
  STO_MTDYNSTR_OUTPUT_SRCVALUE,
  STO_MTDYNSTR_INPUT_VALUE,       /* 动态串函数输入 */
  STO_MTDYNSTR_OUTPUT_MINVA,
  STO_MTDYNSTR_OUTPUT_MAXVA,
}Sto_MaintainDynStrTypeEnum;

typedef enum _Sto_MaintainInputCmdEnum
{
  STO_MTDINPUT_CMD_INIT = 0,
  STO_MTDINPUT_CMD_DEL1,      /* 从又删除一位 */
  STO_MTDINPUT_CMD_KEYT,
  STO_MTDINPUT_CMD_KEYOK,
  STO_MTDINPUT_CMD_KEY,
}Sto_MaintainInputCmdEnum;

extern sto_upcb_function(main_display_pos1);       /* 首页位置1显示 0班累计 1日累计 2月累计 3年累计 */
extern sto_upcb_function(main_display_pos2);       /* 首页位置2显示 0流量 1载荷 2速度 */
extern sto_upcb_function(refresh_rate);            /* 显示刷新率 1~20 */
extern sto_upcb_function(num_of_class);            /* 当日班数 */
extern sto_upcb_function(local_number);            /* 本机编号 */
extern sto_upcb_function(measuring_range_tph);     /* 量程 t/h */
extern sto_upcb_function(division_kg);             /* 累计分度值 kg STO_MTIDX_divisionenum */
extern sto_upcb_function(auto_zero_range);         /* 自动调零强度 */
extern sto_upcb_function(manu_zero_range);         /* 手动调零强度 */
extern sto_upcb_function(speed_low_limit);         /* 实测速度内码下限 */
extern sto_upcb_function(flowrate_lowlim_kgh);     /* 有效流量下限 t/h */
extern sto_upcb_function(weight_pulse_wide);       /* 定量脉冲开关及宽度 ms */
extern sto_upcb_function(weight_pulse_set_kg);     /* 定量重量设定 kg */
extern sto_upcb_function(len_circle_mode);         /* 整圈方式 */
extern sto_upcb_function(belt_period_0d01s);       /* 皮带周期 0.1s */
extern sto_upcb_function(belt_length_mm);          /* 皮带周长 mm */
extern sto_upcb_function(effect_length_mm);        /* 称量长度 mm */
extern sto_upcb_function(speed_wheel_cir_0d1mm);   /* 测速轮周长 0.1mm */
extern sto_upcb_function(speed_wheel_pls);         /* 测速轮每周脉冲 */
extern sto_upcb_function(ao1_zero_code);           /* ao1零点内码(pwm值) */
extern sto_upcb_function(ao1_full_code);           /* ao1满度内码(pwm值) */
extern sto_upcb_function(ao2_zero_code);           /* ao2零点内码(pwm值) */
extern sto_upcb_function(ao2_full_code);           /* ao2满度内码(pwm值) */
extern sto_upcb_function(zero_code_uplimit);       /* 零点内码上限 */
extern sto_upcb_function(zero_code_ave);           /* 零点总平均内码 */
extern sto_upcb_function(factor_correct_enable);   /* 系数修正使能 */
extern sto_upcb_function(weight_factor_base);      /* 称量系数基础值 */
extern sto_upcb_function(weight_factor01);         /* 称量系数修正01 (  >1600   t/h) */
extern sto_upcb_function(weight_factor02);         /* 称量系数修正02 (1200~1600 t/h) */
extern sto_upcb_function(weight_factor03);         /* 称量系数修正03 (800~1200  t/h) */
extern sto_upcb_function(weight_factor04);         /* 称量系数修正04 (400~800   t/h) */
extern sto_upcb_function(weight_factor05);         /* 称量系数修正05 (  <400    t/h) */
extern sto_upcb_function(cal_fama_weight_0d1g);    /* 校验砝码重量 g */
extern sto_upcb_function(cal_shiwu_weight_kg);     /* 校验实物重量 kg */
extern sto_upcb_function(cal_shiwu_wtacc);         /* 校验实物重量是否计入产量 */
extern sto_upcb_function(cal_lianma_denser_0d1gpm);/* 校验链码密度 g/m */
extern sto_upcb_function(wad_preset_value);        /* 重量内码内给值 */
extern sto_upcb_function(wad_preset_enable);       /* 重量内码内给开关 */
extern sto_upcb_function(sad_preset_value);        /* 速度内码内给值 */
extern sto_upcb_function(sad_preset_enable);       /* 速度内码内给开关 */
extern sto_upcb_function(spd_sensor_addr);         /* 传感器 速度  地址 */
extern sto_upcb_function(wt1_sensor_addr);         /* 传感器 称重1 地址 */
extern sto_upcb_function(wt2_sensor_addr);         /* 传感器 称重2 地址 */
extern sto_upcb_function(wt3_sensor_addr);         /* 传感器 称重3 地址 */
extern sto_upcb_function(wt4_sensor_addr);         /* 传感器 称重4 地址 */
extern sto_upcb_function(year_begin_zero);         /* 年累计起始点 */
extern sto_upcb_function(month_begin_zero);        /* 月累计起始点 */
extern sto_upcb_function(day_begin_zero);          /* 日累计起始点 */
extern sto_upcb_function(acc_class01_start_time);  /* 班01累计起时 */
extern sto_upcb_function(acc_class02_start_time);  /* 班02累计起时 */
extern sto_upcb_function(acc_class03_start_time);  /* 班03累计起时 */
extern sto_upcb_function(acc_class04_start_time);  /* 班04累计起时 */

extern sto_upcb_function(total_last_switch);       /* 上次总累计清零切换日期 */
extern sto_upcb_function(year_last_switch);        /* 上次年累计清零切换日期 */
extern sto_upcb_function(month_last_switch);       /* 上次月累计清零切换日期 */
extern sto_upcb_function(day_last_switch);         /* 上次日累计清零切换日期 */
extern sto_upcb_function(hour_last_switch);        /* 上次时累计清零切换日期 */
extern sto_upcb_function(class_last_switch);       /* 上次班累计清零切换日期 */
extern sto_upcb_function(total_acc_0d1g);          /* 总累计 */
extern sto_upcb_function(year_acc_0d1g);           /* 年累计 */
extern sto_upcb_function(month_acc_0d1g);          /* 月累计 */
extern sto_upcb_function(day_acc_0d1g);            /* 日累计 */
extern sto_upcb_function(hour_acc_0d1g);           /* 时累计 */
extern sto_upcb_function(pulse_acc_0d1g);          /* 脉冲累计 */
extern sto_upcb_function(class01_acc_0d1g);        /* 班01累计 */
extern sto_upcb_function(class02_acc_0d1g);        /* 班02累计 */
extern sto_upcb_function(class03_acc_0d1g);        /* 班03累计 */
extern sto_upcb_function(class04_acc_0d1g);        /* 班04累计 */
extern sto_upcb_function(total_acc_last_0d1g);     /* 总累计_上次 */
extern sto_upcb_function(year_acc_last_0d1g);      /* 年累计_上次 */
extern sto_upcb_function(month_acc_last_0d1g);     /* 月累计_上次 */
extern sto_upcb_function(day_acc_last_0d1g);       /* 日累计_上次 */
extern sto_upcb_function(hour_acc_last_0d1g);      /* 时累计_上次 */
extern sto_upcb_function(class01_acc_last_0d1g);   /* 班01累计_上次 */
extern sto_upcb_function(class02_acc_last_0d1g);   /* 班02累计_上次 */
extern sto_upcb_function(class03_acc_last_0d1g);   /* 班03累计_上次 */
extern sto_upcb_function(class04_acc_last_0d1g);   /* 班04累计_上次 */
extern sto_upcb_function(prod_city_num);           /* 市名/编号 */
extern sto_upcb_function(prod_county_num);         /* 县名/编号 */
extern sto_upcb_function(prod_mines_num);          /* 矿名/编号 */
extern sto_upcb_function(prod_year_capacity_t);    /* 核定年生产能力 */
extern sto_upcb_function(prod_month_capacity_t);   /* 核定月生产能力 */
extern sto_upcb_function(prod_day_capacity_t);     /* 核定日生产能力 */
extern sto_upcb_function(prod_hour_capacity_t);    /* 核定时生产能力 */
extern sto_upcb_function(prod_interval_time_s);    /* 间隔参量时间 也是上传时间 s */
extern sto_upcb_function(prod_net_timeout_s);      /* 产量网络发送超时时间 s */
extern sto_upcb_function(eth_local_ip);            /* 本机IP  u8x4 */
extern sto_upcb_function(eth_local_gw);            /* 网关    u8x4 */
extern sto_upcb_function(eth_local_msk);           /* 子网掩码 u8x4 */
extern sto_upcb_function(eth_local_mac);           /* 本机MAC u8x6 */
extern sto_upcb_function(eth_produp_ip);           /* 间隔参量上传 目标服务器ip u8x4 */
extern sto_upcb_function(eth_prodrt_ip);           /* 实时参量上传 目标服务器ip u8x4 */
extern sto_upcb_function(eth_mbtcp_ip);            /* modbusTCP  目标服务器ip u8x4 */
extern sto_upcb_function(eth_produp_port);         /* 间隔参量上传 目标服务器端口 */
extern sto_upcb_function(eth_prodrt_port);         /* 实时参量上传 目标服务器端口 */
extern sto_upcb_function(eth_mbtcp_prot);          /* modbusTCP  目标服务器端口 */

extern sto_dynstr_function(main_display_pos1);       /* 首页位置1显示 0班累计 1日累计 2月累计 3年累计 */
extern sto_dynstr_function(main_display_pos2);       /* 首页位置2显示 0流量 1载荷 2速度 */
extern sto_dynstr_function(refresh_rate);            /* 显示刷新率 1~20 */
extern sto_dynstr_function(num_of_class);            /* 当日班数 */
extern sto_dynstr_function(local_number);            /* 本机编号 */
extern sto_dynstr_function(measuring_range_tph);     /* 量程 t/h */
extern sto_dynstr_function(para_display_time);       /* 仅参数显示-时间 */
extern sto_dynstr_function(para_display_date);       /* 仅参数显示-日期 */
extern sto_dynstr_function(division_kg);             /* 累计分度值 kg STO_MTIDX_divisionenum */
extern sto_dynstr_function(auto_zero_range);         /* 自动调零强度 */
extern sto_dynstr_function(manu_zero_range);         /* 手动调零强度 */
extern sto_dynstr_function(speed_low_limit);         /* 实测速度内码下限 */
extern sto_dynstr_function(flowrate_lowlim_kgh);     /* 有效流量下限 t/h */
extern sto_dynstr_function(weight_pulse_wide);       /* 定量脉冲开关及宽度 ms */
extern sto_dynstr_function(weight_pulse_set_kg);     /* 定量重量设定 kg */
extern sto_dynstr_function(len_circle_mode);         /* 整圈方式 */
extern sto_dynstr_function(belt_period_0d01s);       /* 皮带周期 0.1s */
extern sto_dynstr_function(belt_length_mm);          /* 皮带周长 mm */
extern sto_dynstr_function(effect_length_mm);        /* 称量长度 mm */
extern sto_dynstr_function(speed_wheel_cir_0d1mm);   /* 测速轮周长 0.1mm */
extern sto_dynstr_function(speed_wheel_pls);         /* 测速轮每周脉冲 */
extern sto_dynstr_function(ao1_zero_code);           /* ao1零点内码(pwm值) */
extern sto_dynstr_function(ao1_full_code);           /* ao1满度内码(pwm值) */
extern sto_dynstr_function(ao2_zero_code);           /* ao2零点内码(pwm值) */
extern sto_dynstr_function(ao2_full_code);           /* ao2满度内码(pwm值) */
extern sto_dynstr_function(zero_code_uplimit);       /* 零点内码上限 */
extern sto_dynstr_function(zero_code_ave);           /* 零点总平均内码 */
extern sto_dynstr_function(factor_correct_enable);   /* 系数修正使能 */
extern sto_dynstr_function(weight_factor_base);      /* 称量系数基础值 */
extern sto_dynstr_function(weight_factor01);         /* 称量系数修正01 (  >1600   t/h) */
extern sto_dynstr_function(weight_factor02);         /* 称量系数修正02 (1200~1600 t/h) */
extern sto_dynstr_function(weight_factor03);         /* 称量系数修正03 (800~1200  t/h) */
extern sto_dynstr_function(weight_factor04);         /* 称量系数修正04 (400~800   t/h) */
extern sto_dynstr_function(weight_factor05);         /* 称量系数修正05 (  <400    t/h) */
extern sto_dynstr_function(cal_fama_weight_0d1g);    /* 校验砝码重量 g */
extern sto_dynstr_function(cal_shiwu_weight_kg);     /* 校验实物重量 kg */
extern sto_dynstr_function(cal_shiwu_wtacc);         /* 校验实物重量是否计入产量 */
extern sto_dynstr_function(cal_lianma_denser_0d1gpm);/* 校验链码密度 g/m */
extern sto_dynstr_function(wad_preset_value);        /* 重量内码内给值 */
extern sto_dynstr_function(wad_preset_enable);       /* 重量内码内给开关 */
extern sto_dynstr_function(sad_preset_value);        /* 速度内码内给值 */
extern sto_dynstr_function(sad_preset_enable);       /* 速度内码内给开关 */
extern sto_dynstr_function(spd_sensor_addr);         /* 传感器 速度  地址 */
extern sto_dynstr_function(wt1_sensor_addr);         /* 传感器 称重1 地址 */
extern sto_dynstr_function(wt2_sensor_addr);         /* 传感器 称重2 地址 */
extern sto_dynstr_function(wt3_sensor_addr);         /* 传感器 称重3 地址 */
extern sto_dynstr_function(wt4_sensor_addr);         /* 传感器 称重4 地址 */
extern sto_dynstr_function(year_begin_zero);         /* 年累计起始点 */
extern sto_dynstr_function(month_begin_zero);        /* 月累计起始点 */
extern sto_dynstr_function(day_begin_zero);          /* 日累计起始点 */
extern sto_dynstr_function(acc_class01_start_time);  /* 班01累计起时 */
extern sto_dynstr_function(acc_class02_start_time);  /* 班02累计起时 */
extern sto_dynstr_function(acc_class03_start_time);  /* 班03累计起时 */
extern sto_dynstr_function(acc_class04_start_time);  /* 班04累计起时 */

extern sto_dynstr_function(total_last_switch);       /* 上次总累计清零切换日期 */
extern sto_dynstr_function(year_last_switch);        /* 上次年累计清零切换日期 */
extern sto_dynstr_function(month_last_switch);       /* 上次月累计清零切换日期 */
extern sto_dynstr_function(day_last_switch);         /* 上次日累计清零切换日期 */
extern sto_dynstr_function(hour_last_switch);        /* 上次时累计清零切换日期 */
extern sto_dynstr_function(class_last_switch);       /* 上次班累计清零切换日期 */
extern sto_dynstr_function(total_acc_0d1g);          /* 总累计 */
extern sto_dynstr_function(year_acc_0d1g);           /* 年累计 */
extern sto_dynstr_function(month_acc_0d1g);          /* 月累计 */
extern sto_dynstr_function(day_acc_0d1g);            /* 日累计 */
extern sto_dynstr_function(hour_acc_0d1g);           /* 时累计 */
extern sto_dynstr_function(pulse_acc_0d1g);          /* 脉冲累计 */
extern sto_dynstr_function(class01_acc_0d1g);        /* 班01累计 */
extern sto_dynstr_function(class02_acc_0d1g);        /* 班02累计 */
extern sto_dynstr_function(class03_acc_0d1g);        /* 班03累计 */
extern sto_dynstr_function(class04_acc_0d1g);        /* 班04累计 */
extern sto_dynstr_function(total_acc_last_0d1g);     /* 总累计_上次 */
extern sto_dynstr_function(acc_all_clear);           /* 累计全部清零 仅显示 不存储 */
extern sto_dynstr_function(year_acc_last_0d1g);      /* 年累计_上次 */
extern sto_dynstr_function(month_acc_last_0d1g);     /* 月累计_上次 */
extern sto_dynstr_function(day_acc_last_0d1g);       /* 日累计_上次 */
extern sto_dynstr_function(hour_acc_last_0d1g);      /* 时累计_上次 */
extern sto_dynstr_function(class01_acc_last_0d1g);   /* 班01累计_上次 */
extern sto_dynstr_function(class02_acc_last_0d1g);   /* 班02累计_上次 */
extern sto_dynstr_function(class03_acc_last_0d1g);   /* 班03累计_上次 */
extern sto_dynstr_function(class04_acc_last_0d1g);   /* 班04累计_上次 */
extern sto_dynstr_function(prod_city_num);           /* 市名/编号 */
extern sto_dynstr_function(prod_county_num);         /* 县名/编号 */
extern sto_dynstr_function(prod_mines_num);          /* 矿名/编号 */
extern sto_dynstr_function(prod_year_capacity_t);    /* 核定年生产能力 */
extern sto_dynstr_function(prod_month_capacity_t);   /* 核定月生产能力 */
extern sto_dynstr_function(prod_day_capacity_t);     /* 核定日生产能力 */
extern sto_dynstr_function(prod_hour_capacity_t);    /* 核定时生产能力 */
extern sto_dynstr_function(prod_interval_time_s);    /* 间隔参量时间 也是上传时间 s */
extern sto_dynstr_function(prod_net_timeout_s);      /* 产量网络发送超时时间 s */
extern sto_dynstr_function(eth_local_ip);            /* 本机IP  u8x4 */
extern sto_dynstr_function(eth_local_gw);            /* 网关    u8x4 */
extern sto_dynstr_function(eth_local_msk);           /* 子网掩码 u8x4 */
extern sto_dynstr_function(eth_local_mac);           /* 本机MAC u8x6 */
extern sto_dynstr_function(eth_produp_ip);           /* 间隔参量上传 目标服务器ip u8x4 */
extern sto_dynstr_function(eth_prodrt_ip);           /* 实时参量上传 目标服务器ip u8x4 */
extern sto_dynstr_function(eth_mbtcp_ip);            /* modbusTCP  目标服务器ip u8x4 */
extern sto_dynstr_function(eth_produp_port);         /* 间隔参量上传 目标服务器端口 */
extern sto_dynstr_function(eth_prodrt_port);         /* 实时参量上传 目标服务器端口 */
extern sto_dynstr_function(eth_mbtcp_prot);          /* modbusTCP  目标服务器端口 */

extern uint8_t sto_inputcb_general_number(const Sto_MaintainStru *pmt, uint8_t cmd, uint8_t key);
extern uint8_t sto_inputcb_general_ip(const Sto_MaintainStru *pmt, uint8_t cmd, uint8_t key);

extern const Sto_DescribeStrStru sto_fixstr_pointer(main_display_pos1);       /* 首页位置1显示 0班累计 1日累计 2月累计 3年累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(main_display_pos2);       /* 首页位置2显示 0流量 1载荷 2速度 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(refresh_rate);            /* 显示刷新率 1~20 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(num_of_class);            /* 当日班数 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(local_number);            /* 本机编号 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(measuring_range_tph);     /* 量程 t/h */
extern const Sto_DescribeStrStru sto_fixstr_pointer(para_display_time);       /* 仅参数显示-时间 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(para_display_date);       /* 仅参数显示-日期 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(division_kg);             /* 累计分度值 kg STO_MTIDX_divisionenum */
extern const Sto_DescribeStrStru sto_fixstr_pointer(auto_zero_range);         /* 自动调零强度 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(manu_zero_range);         /* 手动调零强度 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(speed_low_limit);         /* 实测速度内码下限 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(flowrate_lowlim_kgh);     /* 有效流量下限 t/h */
extern const Sto_DescribeStrStru sto_fixstr_pointer(weight_pulse_wide);       /* 定量脉冲开关及宽度 ms */
extern const Sto_DescribeStrStru sto_fixstr_pointer(weight_pulse_set_kg);     /* 定量重量设定 kg */
extern const Sto_DescribeStrStru sto_fixstr_pointer(len_circle_mode);         /* 整圈方式 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(belt_period_0d01s);       /* 皮带周期 0.1s */
extern const Sto_DescribeStrStru sto_fixstr_pointer(belt_length_mm);          /* 皮带周长 mm */
extern const Sto_DescribeStrStru sto_fixstr_pointer(effect_length_mm);        /* 称量长度 mm */
extern const Sto_DescribeStrStru sto_fixstr_pointer(speed_wheel_cir_0d1mm);   /* 测速轮周长 0.1mm */
extern const Sto_DescribeStrStru sto_fixstr_pointer(speed_wheel_pls);         /* 测速轮每周脉冲 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(ao1_zero_code);           /* ao1零点内码(pwm值) */
extern const Sto_DescribeStrStru sto_fixstr_pointer(ao1_full_code);           /* ao1满度内码(pwm值) */
extern const Sto_DescribeStrStru sto_fixstr_pointer(ao2_zero_code);           /* ao2零点内码(pwm值) */
extern const Sto_DescribeStrStru sto_fixstr_pointer(ao2_full_code);           /* ao2满度内码(pwm值) */
extern const Sto_DescribeStrStru sto_fixstr_pointer(zero_code_uplimit);       /* 零点内码上限 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(zero_code_ave);           /* 零点总平均内码 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(factor_correct_enable);   /* 系数修正使能 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(weight_factor_base);      /* 称量系数基础值 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(weight_factor01);         /* 称量系数修正01 (  >1600   t/h) */
extern const Sto_DescribeStrStru sto_fixstr_pointer(weight_factor02);         /* 称量系数修正02 (1200~1600 t/h) */
extern const Sto_DescribeStrStru sto_fixstr_pointer(weight_factor03);         /* 称量系数修正03 (800~1200  t/h) */
extern const Sto_DescribeStrStru sto_fixstr_pointer(weight_factor04);         /* 称量系数修正04 (400~800   t/h) */
extern const Sto_DescribeStrStru sto_fixstr_pointer(weight_factor05);         /* 称量系数修正05 (  <400    t/h) */
extern const Sto_DescribeStrStru sto_fixstr_pointer(cal_fama_weight_0d1g);    /* 校验砝码重量 g */
extern const Sto_DescribeStrStru sto_fixstr_pointer(cal_shiwu_weight_kg);     /* 校验实物重量 kg */
extern const Sto_DescribeStrStru sto_fixstr_pointer(cal_shiwu_wtacc);         /* 校验实物重量是否计入产量 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(cal_lianma_denser_0d1gpm);/* 校验链码密度 g/m */
extern const Sto_DescribeStrStru sto_fixstr_pointer(wad_preset_value);        /* 重量内码内给值 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(wad_preset_enable);       /* 重量内码内给开关 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(sad_preset_value);        /* 速度内码内给值 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(sad_preset_enable);       /* 速度内码内给开关 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(spd_sensor_addr);         /* 传感器 速度  地址 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(wt1_sensor_addr);         /* 传感器 称重1 地址 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(wt2_sensor_addr);         /* 传感器 称重2 地址 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(wt3_sensor_addr);         /* 传感器 称重3 地址 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(wt4_sensor_addr);         /* 传感器 称重4 地址 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(year_begin_zero);         /* 年累计起始点 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(month_begin_zero);        /* 月累计起始点 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(day_begin_zero);          /* 日累计起始点 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(acc_class01_start_time);  /* 班01累计起时 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(acc_class02_start_time);  /* 班02累计起时 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(acc_class03_start_time);  /* 班03累计起时 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(acc_class04_start_time);  /* 班04累计起时 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(total_last_switch);       /* 上次总累计清零切换日期 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(year_last_switch);        /* 上次年累计清零切换日期 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(month_last_switch);       /* 上次月累计清零切换日期 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(day_last_switch);         /* 上次日累计清零切换日期 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(hour_last_switch);        /* 上次时累计清零切换日期 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(class_last_switch);       /* 上次班累计清零切换日期 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(total_acc_0d1g);          /* 总累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(year_acc_0d1g);           /* 年累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(month_acc_0d1g);          /* 月累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(day_acc_0d1g);            /* 日累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(hour_acc_0d1g);           /* 时累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(pulse_acc_0d1g);          /* 脉冲累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(class01_acc_0d1g);        /* 班01累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(class02_acc_0d1g);        /* 班02累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(class03_acc_0d1g);        /* 班03累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(class04_acc_0d1g);        /* 班04累计 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(total_acc_last_0d1g);     /* 总累计_上次 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(acc_all_clear);           /* 累计全部清零 仅显示 不存储 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(year_acc_last_0d1g);      /* 年累计_上次 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(month_acc_last_0d1g);     /* 月累计_上次 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(day_acc_last_0d1g);       /* 日累计_上次 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(hour_acc_last_0d1g);      /* 时累计_上次 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(class01_acc_last_0d1g);   /* 班01累计_上次 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(class02_acc_last_0d1g);   /* 班02累计_上次 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(class03_acc_last_0d1g);   /* 班03累计_上次 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(class04_acc_last_0d1g);   /* 班04累计_上次 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(prod_city_num);           /* 市名/编号 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(prod_county_num);         /* 县名/编号 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(prod_mines_num);          /* 矿名/编号 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(prod_year_capacity_t);    /* 核定年生产能力 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(prod_month_capacity_t);   /* 核定月生产能力 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(prod_day_capacity_t);     /* 核定日生产能力 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(prod_hour_capacity_t);    /* 核定时生产能力 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(prod_interval_time_s);    /* 间隔参量时间 也是上传时间 s */
extern const Sto_DescribeStrStru sto_fixstr_pointer(prod_net_timeout_s);      /* 产量网络发送超时时间 s */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_local_ip);            /* 本机IP  u8x4 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_local_gw);            /* 网关    u8x4 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_local_msk);           /* 子网掩码 u8x4 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_local_mac);           /* 本机MAC u8x6 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_produp_ip);           /* 间隔参量上传 目标服务器ip u8x4 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_prodrt_ip);           /* 实时参量上传 目标服务器ip u8x4 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_mbtcp_ip);            /* modbusTCP  目标服务器ip u8x4 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_produp_port);         /* 间隔参量上传 目标服务器端口 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_prodrt_port);         /* 实时参量上传 目标服务器端口 */
extern const Sto_DescribeStrStru sto_fixstr_pointer(eth_mbtcp_prot);          /* modbusTCP  目标服务器端口 */

extern const Sto_MaintainTableStru sto_maintain_table;

#endif  /*__PARAMETER_H_ */
